#!/usr/bin/env python 
# -*- coding:utf-8 -*-

from flask import Flask,request,url_for,redirect,render_template
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ocr.v20181119 import ocr_client, models
import json

app = Flask(__name__)

@app.route

@app.route('/index')
def index():
    return render_template('ocr_bank.html')


@app.route('/ocr/', methods=['POST'])
def ocr_bank():
    file_path = request.form.get('file_path')
    try:
        # 实例化一个认证对象，入参需要传入腾讯云账户 SecretId 和 SecretKey，此处还需注意密钥对的保密
        # 代码泄露可能会导致 SecretId 和 SecretKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考，建议采用更安全的方式来使用密钥，请参见：https://cloud.tencent.com/document/product/1278/85305
        # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
        cred = credential.Credential("AKIDdCZhbIl04vY0C95mGVUHrGQO7h5RZR9e", "JRQDvXzSr8HHIArMgpriQxJVaWKuHUWJ")
        # 实例化一个http选项，可选的，没有特殊需求可以跳过
        httpProfile = HttpProfile()
        httpProfile.endpoint = "ocr.tencentcloudapi.com"

        # 实例化一个client选项，可选的，没有特殊需求可以跳过
        clientProfile = ClientProfile()
        clientProfile.httpProfile = httpProfile
        # 实例化要请求产品的client对象,clientProfile是可选的
        client = ocr_client.OcrClient(cred, "ap-beijing", clientProfile)

        # 实例化一个请求对象,每个接口都会对应一个request对象
        req = models.GeneralHandwritingOCRRequest()
        params = {
            # "ImageUrl": "https://llfile.zhongrunduo.com/bendishenghuo/zrd/21/01/09/4i4dc7779daf1b604719832281db2becf026.jpg"
            "ImageUrl": file_path
        }
        req.from_json_string(json.dumps(params))

        # 返回的resp是一个RecognizeTravelCardOCRResponse的实例，与请求对象对应
        resp = client.GeneralHandwritingOCR(req)
        # 输出json格式的字符串回包
        return {'code': 200, 'msg': resp.to_json_string()}

    except TencentCloudSDKException as err:
        return {'code': err.code, 'msg': err.message}


if __name__ == '__main__':
    ip = '0.0.0.0'
    port = 821
    debug = True
    app.run(ip, port, debug)


# form表单格式入参： request.form.get()
# json 格式入参： request.json.get()
# 请求链接直接拼接入参: request.args.get()
